Foot strike analyzer system and methods

ABSTRACT

Systems, methods, and software products analyze foot strikes. A runner profile defining characteristics of a user and a shoe type of the shoes is received. Shoe characteristics are retrieved based upon the shoe type. A model of shoe wear is configured based upon both the runner profile and the shoe characteristics. Sensor data indicative of movement of a runner&#39;s foot is received from a foot strike monitor configured with the shoes and processed through the model to determine a user&#39;s expected lifetime for the shoes. The user&#39;s expected lifetime is indicated to the user.

RELATED APPLICATIONS

This application claims priority to U.S. Patent Application Ser. No.62/347,522, filed Jun. 8, 2016, and titled “Foot Strike Analyzer Systemand Methods,” which is incorporated herein by reference.

BACKGROUND

Runners have no way of accurately knowing when their shoes are worn out.When a shoe is worn out it no longer gives the support and cushioningneeded to prevent injuries. Typically, a new running shoe is given a300-500 mile life recommendation. Thus, the most common way for therunner to know if their shoes are worn out is to visually inspect theshoe to see if they look worn or wait until the shoes hurt to run in.Alternatively, based upon the life recommendation of 300-500 miles, therunner estimates the distance run in the shoes and buys new shoes whenthe estimated distance is between 300 and 500 miles, or greater.However, many runners do not accumulate distance run in their shoes, orestimate the distance poorly, and frequently run in worn out shoes thatresult in injury to the runner's feet. Further, tracking distance rundoes not take into account the individual wear characteristics impartedto the shoes by each runner.

When a shoe is worn out it no longer provides the support and cushioningfor the runner's lower extremities. Often times, when the shoe foam isworn out, the runner is unaware due to the fact that there is no way toaccurately diagnose that the foam is broken down, other than an eye testand at the this point the runner may have already been at risk forinjury for quite some time. As the runner continues to use the worn outshoes there body is experiencing more force than their bodies canhandle. Over time the forces that used to be absorbed by the foam arenow transmitted into the runner's body. This increased force then leadsto injuries such as stress fractures in the bones, which can take manymonths of recuperation.

SUMMARY

In one embodiment, a system analyzes foot strikes and includes a footstrike monitor, configurable with a running shoe, for detecting movementof a runner's foot within the running shoe, an app, for downloading to,and executing on, a communication device. The app, when executed on thecommunication device receives the detected movement from the foot strikeanalyzer, models wear on the shoe based upon characteristics of therunner and characteristics of the shoe to determine a performance of theshoe, predicts a date when the performance of the shoe will fall below adefined threshold, and alerts the runner to the predicted date.

In another embodiment, a method analyzes foot strikes. A runner profiledefining characteristics of a user and a shoe type of the shoes isreceived. Shoe characteristics are retrieved based upon the shoe type. Amodel of shoe wear is configured based upon both the runner profile andthe shoe characteristics. Sensor data indicative of movement of arunner's foot is received from a foot strike monitor configured with theshoes and processed through the model to determine a user's expectedlifetime for the shoes. The user's expected lifetime is indicated to theuser.

In another embodiment, a method analyzes foot strikes. A runner profiledefining a shoe type is received. Shoe characteristics are retrievedbased upon the shoe type. A model of shoe wear is configured based uponboth the runner profile and the shoe characteristics. Sensor dataindicative of movement of a runner's foot is received from a foot strikemonitor configured with a shoe and processed through the model during afirst period to generate model data indicative of an initial performanceof the shoe. The sensor data is processed through the model during asubsequent second period to generate model data indicative of a currentperformance of the shoe. The current performance and the initialperformance are analyzed to determine change in performance of the shoe.A date when performance of the shoe will fall below a defined thresholdis predicted and the runner is alerted to the predicted date.

In another embodiment, a software product has instructions, stored onnon-transitory computer-readable media, wherein the instructions, whenexecuted by a digital processor, perform steps for analyzing footstrikes, including instructions for configuring a model of shoe wearbased upon both a runner profile and shoe characteristics, instructionsfor sensing, using at least one accelerometer configured with a shoe,sensor data indicative of movement of a runner's foot, instructions forprocessing the sensor data through the model during a first period togenerate model data indicative of an initial performance of the shoe,instructions for processing the sensor data through the model during asubsequent second period to generate model data indicative of a currentperformance of the shoe, instructions for analyzing the currentperformance and the initial performance to determine change inperformance of the shoe, instructions for predicting a date whenperformance of the shoe will fall below a defined threshold, andinstructions for alerting the runner to the predicted date.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows one example foot strike analyzer for monitoring anddisplaying force experienced through a running shoe, in an embodiment.

FIG. 2 shows foot strike analyzer of FIG. 1 in further example detail.

FIG. 3 is a flowchart illustrating one example method for sensing footstrikes, in an embodiment.

FIG. 4 is a flowchart illustrating one example method for receiving andmodeling sensor data within the communication device of FIG. 1 todetermine wear, and expected life, of the shoe, in an embodiment.

FIG. 5A is a block diagram illustrating example detail of the footstrike monitor of FIGS. 1 and 2 in an embodiment.

FIG. 5B is a schematic diagram illustrating example circuitry forimplementing the foot strike monitor of FIG. 5A, in an embodiment.

FIG. 6 is a block diagram illustrating further example detail of thecommunication device of FIG. 1, in an embodiment.

FIGS. 7, 8, 9, and 10 show example screens generated by the runninganalyzer of FIG. 6, in embodiments.

FIG. 11 shows further example detail of the server and the shoe typedatabase of FIGS. 1 and 2, in embodiments.

FIG. 12 shows one example temporary attachment device for attaching thefoot strike monitor of FIG. 1 to the shoe, in an embodiment.

FIG. 13 shows the temporary attachment device of FIG. 12 attached to theshoe.

FIG. 14 shows one example permanent attachment device for attaching thefoot strike monitor of FIG. 1 to the shoe, in an embodiment.

FIG. 15 shows example orientation of X, Y and Z axes used by the footstrike monitor of FIG. 1 when positioned at the rear of the shoe, in anembodiment.

FIG. 16 shows the model of FIG. 2 including a foot strike detectionalgorithm, a max impact force algorithm, and a pronation excursion anglealgorithm, in an embodiment.

FIG. 17 is a graph illustrating example sensor data for GyrY and GyrZduring contact of the foot with the ground, as used by the foot strikedetection algorithm of FIG. 16.

FIG. 18 is a flowchart illustrating one example method for foot strikedetection, in an embodiment.

FIG. 19 is a flowchart illustrating one example method for max impactforce detection, in an embodiment.

FIG. 20 is a flowchart illustrating one example method for pronationexcursion angle detection, in an embodiment.

FIG. 21A is a graph showing example sensor data for GyrY during contactof the foot with the ground.

FIG. 21B is a graph showing example sensor data for GyrZ during contactof the foot with the ground.

FIG. 21C is a graph showing example sensor data for GyrY and AccX duringcontact of the foot with the ground.

FIG. 21D is a graph showing example sensor data for GyrY and GyrZ duringcontact of the foot with the ground.

FIG. 21E is a graph showing example sensor data for GyrY and GyrZ duringcontact of the foot with the ground.

FIG. 22A is a graph showing example impact forces detected by the footstrike monitor of FIG. 1.

FIG. 22B is a graph showing example pronation detected by the footstrike monitor of FIG. 1.

FIG. 23 is a graph showing example impact forces detected by the footstrike monitor of FIG. 1.

FIG. 24 is a graph showing example pronation detected by the foot strikemonitor of FIG. 1.

FIG. 25 shows an example impact graph illustrating time to reach peakimpact within one step.

FIG. 26 is a schematic illustrating key factors that influence boneloading and bone strain when running.

DETAILED DESCRIPTION OF THE EMBODIMENTS

FIG. 1 shows one example foot strike analyzer 100 having a foot strikemonitor 102 that communicates with a communication device 120 (e.g., asmart phone or similar device) that cooperate to monitor the force beingexperienced through a running shoe 104 worn by the runner. As shown inFIG. 1, foot strike monitor 102 may attach (e.g., using the shoelaces)to an upper portion of running shoe 104. In an alternative embodiment,foot strike monitor 102 may attach, or be built into, a rear portion ofthe upper of shoe 104, illustrated as foot strike monitor 102′. Inanother embodiment, foot strike monitor 102 may be built into a heel ofthe sole of shoe 104, illustrated as foot strike monitor 102″. Inanother embodiment, foot strike monitor 102 may be built into a forwardpart of the sole of shoe 104, illustrated as foot strike monitor 102″″.The sensor 102 may be permanently attached to the shoe or temporarilyattached to the shoe. The permanent and temporary attachments are shownin the “Attachment and Sensor Design” document.

Foot strike monitor 102 senses acceleration and rotation experienced byrunning shoe 104, and hence experienced by a foot of the runner. Footstrike monitor 102 sends captured sensor data corresponding to theacceleration and rotation to communication device 120, where software136 (e.g., an App) running on communication device 120 analyzes the dataand determines impact, indicated by impact icon 124 and impact value126, pronation, indicated by pronation icon 128 and pronation angle 130,and a wear indication, indicated by wear icon 132 and wear value 134. Inthe example of FIG. 1, wear value 134 indicates an estimated number ofrunning miles remaining for running shoe 104 before cushioning andsupport degrades to a point where injury to the runner's foot may occur.Impact value 126, pronation angle 130, and wear value 134 may be colorcoded, such as green when indicating a value in the safe zone, yellowwhen the value indicates that the cushioning and support are degradingbut still usable, and red when the values indicate that the cushioningand support are at a dangerous level.

Communication device 120 may communicate with a server 140 that includesa shoe type database 142 that defines characteristics of a plurality ofdifferent running shoe types from various manufacturers. Communicationdevice 120 retrieves characteristics corresponding to running shoe 104from database 142 and models wear of running shoe 104 to accuratelydetermine when running shoe 104 has become worn out and thus likely tocause injury to the runner. It should be appreciated that the term “run”herein may also include jogging, walking or any other physical activitythat imparts force on the body via the shoe without departing from thescope hereof. Similarly “runner” may include runners, joggers, walkers,skippers, etc.

FIG. 2 shows foot strike analyzer 100 of FIG. 1 in further exampledetail. Server 140 is a computer that includes at least one processor252 and a memory 254 that may represent one or more of volatile memory(e.g., RAM) and non-volatile memory (e.g., ROM, magnetic, optical,FLASH, etc. as known in the art), each of which may be local and/ornetworked. Server 140 also includes software 260 that has machinereadable instructions that are executed by processor 252 to implementthe functionality of server 140 as described herein. In one embodiment,server 140 is implemented “in the cloud” and includes an interface (notshown) that allows accessibility via the Internet using interface 262.Memory 254 is shown storing shoe type database 142 storing a shoe type256 in association to its corresponding shoe characteristics 258,thereby allowing characteristics 258 to be retrieved from server 140,for example by communications device 120, based upon a defined shoe type256. Software 260 operates to generate, update, and maintain shoe typedatabase 142 and communicate with software 136 of communication device120 via interface 262.

Communication device 120 includes display 120 (e.g., a touch screendisplay), at least one processor 222, and a memory 224. Memory 224 mayrepresent one or more of volatile memory (e.g., RAM) and non-volatilememory (e.g., ROM, magnetic, optical, FLASH, etc. as known in the art).Memory 224 is shown storing a runner profile 230, created by a runnervia interaction with communication device 120, that defines certaincharacteristics of the runner that are pertinent to running shoe 104,including a shoe type 232 that defines a manufacturer and a model ofrunning shoe 104. Software 136 includes machine readable instructionsthat are executed by processor 222 to implement functionality ofcommunication device 120 described herein.

Communication device 120 includes an interface 226 that facilitatescommunication with server 140, such as via the Internet and other wiredand wireless networks. In one embodiment, interface 226 implements acellular based data communication protocol for connecting to theInternet via a cellular communication provider. In another embodiment,interface 226 implements a Wi-Fi protocol that allows communicationdevice 120 to communicate with server 140 via a wireless network and theInternet. Software 136 retrieves, based upon shoe type 232 and viainterface 226, corresponding shoe characteristics 258 from database 142.Software 136 then implements a model 234 based upon both runner profile230 and shoe characteristics 258. Communication device 120 also includesan interface 228 that communicates with foot strike monitor 102.Interface 228 may implement a short range wireless communicationprotocol such as Bluetooth, Bluetooth Low-Energy, or other suchprotocols.

Utilizing both runner profile 230 and shoe characteristics 258 allowsmodel 234 to be uniquely tailored to each runner and their selectedrunning shoe 104, and thereby more accurately predict the wear on theshoe 104. Characterizing both the shoe and the runner within model 234,allows model 234 to accurately predict the change in cushioning andprotection provided by the shoe over time, and thereby predict when theshoe will no longer provide sufficient cushioning and protection. Forexample, based upon the unique stride and history of the user, model 234adjusts the total miles that a shoe may be worn. Model 234 also adds orsubtracts miles based upon characteristics of the particular shoe. Then,model 234 uses sensor data to determine a percent increase from abaseline and/or over five consecutive sessions during which presetthreshold values are crossed.

Foot strike monitor 102 includes at least one processor 202, a memory204, at least one sensor 208, and an interface 212. Memory 206represents one or more of volatile memory (e.g., RAM) and non-volatilememory (e.g., ROM, magnetic, optical, FLASH, etc. as known in the art),and is shown storing software 206. Sensor 208 is for example threeaccelerometers that measure acceleration in three orthogonal directionssimultaneously. In another embodiment, sensors 208 are implemented astwo orthogonal linear accelerometers and a rotational accelerometerand/or gyroscope. More or fewer accelerometers and gyroscopes may beimplemented without departing from the scope hereof. Software 206includes machine readable instructions that are executed by processor202 to read sensor data 210 from one or more sensors 208 and storessensor data 210 within memory 204. For example, at least part of memory204 may form a circular buffer (or other type of memory buffer) thatreceives and stores sensor data 210 prior to transfer to communicationdevice 120. Foot strike monitor 102 also includes an interface 212 thatfacilitates communication with communication device 120. For example,interface 212 is configured with a protocol matching that of interface228 to enable transfer of sensor data 210 to communication device 120.As sensor data 210 is successfully transferred to communication device120 is may be removed from memory 204.

Foot strike monitor 102 may collect sensor data 210 within memory 204even when not in communication with communication device 120,transferring stored sensor data 210 to communication device 120 whencommunication is next established. In one example of operation, therunner wears running shoe 104 for a run and does not take communicationdevice 120, wherein foot strike monitor 102 senses and records sensordata 210 during the run. After completing the run, the runner returns toproximity of communication device 120 and sensor data 210 isautomatically transferred to communication device 120 for processing bysoftware 136 using model 234.

FIG. 3 is a flowchart illustrating one example method 300 for sensingfoot strikes. Method 300 is for example implemented within software 206of foot strike monitor 102.

In step 302, method 300 senses acceleration and rotation of the shoe assensor data. In one example of step 302, software 206 is executed byprocessor 202 to read sensor data 210 from at least one sensor 208. Instep 304, sensor data is stored in the memory. In one example of step304, software 206 is executed by processor 212 to store sensor data 210within memory 204.

Step 306 is a decision. If, in step 306, method 300 determines that ablock of sensor data is ready to transmit, method 300 continues withstep 308; otherwise, method 300 continues with step 302. Steps 302, 304,and 306 repeat to store sensor data 210 within memory 204.

Step 308 is a decision. If, in step 308, method 300 determines that thelink to the communication device is up, method 300 continues with step310; otherwise, method 300 continues with step 302. Steps 302, 304, 306,and 308 repeat to store sensor data 210 within memory 204 and untilinterface 212 and interface 228 of communication device 120 haveestablished communication.

In step 310, method 300 transfers a block of sensor data 210 tocommunication device 120 and removes the block of sensor data 210 frommemory 204. In one example of step 310, software 206 is executed byprocessor 202 to transfer sensor data 210 from memory 204 tocommunication device 120 via interface 212 (and corresponding interface228 of communication device 120). Upon successful transfer and a blockof sensor data 210 to communication device 120, software 206 deletes theblock of sensor data 210 from memory 204.

FIG. 4 is a flowchart illustrating one example method 400 for receivingand modeling sensor data within communication device 120 to determinewear, and expected life of, shoe 104. Method 400 is implemented insoftware 136 of communication device 120, for example.

In step 402, method 400 receives a runner profile. In one example ofstep 402, software 136 is executed by processor 222 to interact, viadisplay 122, with a runner (e.g., the user) of communication device 120to receive runner profile 230 that defines at least shoe type 232. Instep 404, method 400 retrieves shoe characteristics from a databasebased upon the shoe type defined within the runner profile. In oneexample of step 404, software 136, executed by processor 222, sends shoetype 232 to server 140 and receives, in return, shoe characteristics 258corresponding to the sent shoe type 232 as determined by matching,within server 140, shoe type 256 of shoe type database 142 with shoetype 232.

In step 406, method 400 configures a model of shoe wear based upon therunner profile received in step 402 and the shoe characteristicsretrieved in step 404. In one example of step 406, software 136generates model 234 based upon runner profile 230 and shoecharacteristics 258. Model 234 determines a baseline/initial impactvalue for a new (non-worn) shoe, which is measured by the foot strikemonitor 102 and delivered to the model as sensor data 210. Once thebaseline for the shoe is set, model 234 determines a wear threshold andexpected change in impact forces that indicates when the shoe (e.g.,foam) is worn out and needs to be replaced based upon shoe type 232,runner profile 230 and shoe characteristics 246 received from the server140.

In step 408, method 400 receives sensor data from the foot strikemonitor. In one example of step 408, software 136 is executed byprocessor 222 to receive a block of sensor data 210 from foot strikemonitor 102 via interface 228 (and interface 212 of foot strike monitor102). In step 410, method 400 processes the sensor data through themodel to generate a wear profile. In one example of step 410, software136 processes sensor data 210 through model 234 to generate modeled data236 based upon runner profile 230 and shoe characteristics 258.

Step 412 is a decision. If, in step 412, method 400 determines that thereceived sensor data is the first received for running shoe 104, method400 continues with step 414; otherwise, method 400 continues with step416.

In step 414, method 400 stores the wear profile as an initial wearprofile. In one example of step 414, software 136 is executed byprocessor 222 to store modeled data 236 as initial wear profile 238 forrunning shoe 104. Method 400 then continues with step 418. In step 416,method 400 stores wear profile of step 410 in wear history 439. Wearhistory 439 thereby forms a history profile of wear on running shoe 104within memory 224. In one embodiment, software 136 may also send modeleddata 236 to server 140 for further processing. For example, server 140may utilize modeled data 236 received from a plurality of runners tomore accurately determine how shoe 104 wears, and thereby generateand/or modify shoe characteristics 258 accordingly. Method 400 continueswith step 418.

In step 418, method 400 compares the current wear profile and theinitial wear profile. In one example of step 418, software 136 isexecuted by processor 222 to compare modeled data 236 against initialwear profile 238 to determine a wear factor 242 of running shoe 104. Inone embodiment, wear factor 242 is a value indicating measured wear onrunning shoe 104 based upon model 234.

Step 420 is a decision. If, in step 420, method 400 determines that thewear factor determined in step 418 is greater than the wear threshold(determined in step 406), method 400 continues with step 422; otherwise,method 400 continues with step 408. Steps 408 through 420 repeat foreach received block of sensor data 210.

In step 422, method 400 alerts the runner to the danger of injury fromcontinued use of the running shoe. In one example of step 422, software136 generates a warning message on display 122 to indicate that runningshoe 104 is worn out and may cause injury. Method 400 then continueswith step 408 to continue processing received sensor data through model234.

FIG. 5A is a block diagram illustrating example detail of foot strikemonitor 102 of FIGS. 1 and 2 in an embodiment. FIG. 5B is a schematicdiagram illustrating example circuitry for implementing foot strikemonitor 102 of FIG. 5A. FIGS. 5A and 5B are best viewed together withthe following description.

Foot strike monitor 102 includes a flash memory 504 for storing sensordata 210. Software 206 is shown within processor 202, which mayrepresent a microcontroller that includes RAM, ROM, and FLASH memory, asknown in the art. Flash memory 504 may be communicatively coupled toprocessor 202 using an I2C (two wire) bus. Processor 202 and wirelessinterface 212 are implemented within a single integrated circuit, andmultiple sensors 208 are implemented within a single integrated circuit.Optionally, foot strike monitor 102 includes an visual output 520, whichmay be implemented as an OLED matrix display that connects to processor202 using the I2C bus. Visual output 520 allows the runner to utilizefoot strike monitor 102 without using communication device 120 and app136. For example, visual output 520 may be configured to show one ormore of miles left 1012, impact 1004, and pronation 1008, or any otherparameter that is displayed by app 136.

Foot strike monitor 102 also includes a power coupler 522 that receivedexternal power (e.g., a wired connection or an inductive coupling), acharge controller 524, a rechargeable battery 526, and powerconditioning circuit 528. Power coupler 522 and charge controller 524cooperate to charge rechargeable battery 526 when power is provided topower coupler 522. Rechargeable battery 526 and power conditioningcircuit 528 cooperate to provide power to processor 202, wirelessinterface 212, sensors 208, flash memory 504, and visual output 520 (ifincluded). In one embodiment, sensors 208 are implemented by anSTMicroelectronics LSM6DSLTR iNEMO inertial module that includes a 3Daccelerometer and a 3D gyroscope.

As appreciated, other integrated circuits and components may be used toimplement foot strike monitor 102 without departing from the scopehereof

FIG. 6 is a block diagram illustrating further example detail ofcommunication device 120 of FIG. 1. Software 136 includes a runninganalyzer 602, a step analyzer 604, a gait analyzer 606, and a wearanalyzer 608. Further to shoe type 232, runner profile 230 may alsoinclude details of the runner. For example, the runner may define one ormore of a weight 652, a birthdate 654, a gender 656, an injury history658, an activity level 660, and a default terrain 662. Weight 652 isused within model 234 to determine the impact felt when running. Age maybe determined from birthdate 654 and used within model 234 to estimatebone density of the runner and a healing rate, which changes as therunner ages. Gender 656 may also be used to estimate the bone density ofthe runner, since bone density of women and men differ and may beadjusted within model 234. Injury history 658 may be used within model234 to determine whether the runner is more or less susceptible toinjury, thereby determining the level of cushioning and support neededfrom the shoe. Terrain 662 defines the type of terrain that the runnerexpects to run on and affects the time that a shoe will last as well asthe impact felt through the shoes. For example, running on dirt reducesresults in a lower impact on the body as compared to running onconcrete, which has a higher impact level. All of these parameters maybe utilized within model 234 to either increase or decrease thepredicted wear out of shoe 104.

FIGS. 7, 8, 9, and 10 show example screens 700, 800, 900, and 1000,respectively, generated by running analyzer 602 of FIG. 6. FIGS. 6through 10 are best viewed together with the following description.

Four icons 720, 722, 724, and 726 are displayed at the bottom of eachscreen 700, 800, 900, and 1000, and may be selected by the runner todisplay the corresponding screen 700, 800, 900, and 1000, respectively.As shown, when each screen 700, 800, 900, and 1000 is displayed, thecorresponding icon 720, 722, 724, and 726, is highlighted, as indicatedby dashed outlines 728, 828, 928, and 1028, respectively.

As shown on screen 700, running analyzer 602 allows the runner to tracka time and a distance for each run. Further, running analyzer 602processes at least part of sensor data 210 to determine one or more of astride length 620, knee lift 622, ground contact time 624, cadence 626,pronation 628, impact 630, pace 632, power 634, and fatigue point 636.This information provides the runner with immediate coaching andfeedback on their running performance, and by analyzing sensor data 210recorded during the run, running analyzer 604 illustrates changes in therunning performance. For example, stride length 620, knee lift 622,ground contact time 624, cadence 626, pronation 628, impact 630, pace632, power 634 may change during the run and fatigue point 636 may bedetermined.

Running analyzer 602 may also send at least part of sensor data 210, orresults from processing sensor data 210, to server 140 for furtheranalysis. For example, server 140 may implement a website that allowsmore detailed analysis of the run, and comparison of that run toprevious runs and run made by other runners. The web site may alsogenerate recommendations for improving the runner's performance (e.g.,bettering stride length and running efficiency). The website may alsoprovide exercises and coaching to help the runner eliminate the changesidentified by running analyzer 602 during the run, and thereby furtherimprove the runner's performance and help prevent injuries.

Screen 700 shows exemplary output from running analyzer 602, including aduration of the run, indicated by icon 702 and time value 704, adistance of the run, indicated by icon 706 and distance value 708, and apace of the run, indicated by icon 710 and pace value 712. Screen 700also shows a graph 714 illustrating the number of miles run over thelast fourteen days.

Screen 800 shows a step count 802, a distance value 804, and a caloriesburned value 808 indicated with an icon 806, for a current run, asgenerated by a step analyzer 604 portion of running analyzer 602. Screen800 also shows a seven-day average step count 810 and a configurabledaily goal step count value 812.

Screen 900 shows a left shoe pronation graphic 902 and a left shoepronation value 906, a right shoe pronation graphic 904 and a right shoepronation value 908, as generated by a gait analyzer 606 portion ofrunning analyzer 602. Screen 900 also displays an impact force value910, 912, for each shoe. Left and right values are determined anddisplayed when the runner is using two foot strike monitors 102, one oneach of the left and right running shoes. Otherwise, a single value maybe determined and displayed for each of pronation and impact force.

A slider 914 allows the runner to move a run position control 916 todisplay pronation and impact force for any part of the selected orcurrent run. That, the runner may evaluate how their gait changed overthe duration of the run.

Gait analyzer 606 may also generate a recommendation for shoe supporttype, as indicated by shoe support type display 918, based uponprocessing of sensor data 210. For example, the recommended shoe supporttype may be one of neutral, stability, motion control, and minimalist,depending upon the pronation and strike force measured over a run.

Previously, gait analysis was determined from video captured of arunner's foot while running. A person then evaluated the video todetermine pronation, however, the video provided no indication of forcesfelt by the runner. System 100 facilitates capture movement of therunner's foot and allows both pronation and force to be determined.

The determined pronation may also be used within model 234 to determinewear on shoe 104. For example, as shoe 104 wears, the stiffer foam orstability aspect in shoes remains sturdy but the soft cushioning foamwears down. This causes the runner's foot to rotate within the shoe.Further, where shoe 104 is not suited to the runner (i.e., the runner isusing the wrong type or size of shoe), their foot is more likely topronate and may cause injury. In one embodiment, model 234 is configuredwith a threshold corresponding to the degree of pronation, that triggersan alert to warn the runner of possible injury. For example, where shoe104 is not correct for the runner, communication device 120 mayimmediately alert the runner to risk of injury—indicating wrong shoes asa cause. Where pronation increases as the shoe wears, this pronation isfactored into the determination of the remaining life of the shoe.

Screen 1000 is generated by wear analyzer 608 based upon modeled data236, wear history 240, and wear factor 242 generated by model 234 andimpact forces generated by gait analyzer 606. For example, wear analyzer608 operates model 234 to generate wear factor 242 as described above,to display an impact icon 1002 with a corresponding average impact forcevalue 1004, a pronation icon 1006 and a corresponding average pronationvalue 1008, and a remaining life icon 1010 with a correspondingestimated distance remaining value 1012 for running shoe 104. Estimateddistance remaining value 1012 is determined from wear factor 242 andwear history 240.

Screen 1000 also displays an impact graph 1014 with a line 1016representing impact force measures for running shoe 104 over the lastthirsty days. A danger area 1018 represents an impact force level whereprotection provided by shoe 104 is insufficient to ensure that injurywill not occur, and thus indicates when shoe 104 is worn out.

FIG. 11 shows server 140 and shoe type database 142 of FIGS. 1 and 2 infurther example detail. Shoe characteristics 258 may include one or moreof a cushioning type 1122, a foam thickness 1124, an outsole 1126, asupport style 1128, a shoe upper 1130, and a type of foot strike 1132.Cushioning type 1122 may be selected from the group including EVA Foam,Gel, TPU, and plastic. Support style 1128 may be selected from the groupincluding: neutral, stability, motion control, and minimalist. Each ofthese characteristics may be used within model 234 of communicationdevice 120 to characterize sensor data 210 based upon the definedcharacteristics of both the runner (e.g., runner profile 230) and shoecharacteristics 258. Cushioning type 1122 is important because eachcushioning type breaks down at a different rate. Foam thickness 1124defines how much surface area and how fast the foam pockets may breakdown (wear). Support style 1128 defines which of many differentdensities of foam are used to provide support in the shoe. Foot strike1132 defines where (relative to the foot) the runner strikes hardest,which is important as the thickness of the cushioning is different atthe front of the shoe as compared to the rear of the shoe. Outsole 1126and shoe upper 1130 define the shock absorption and wear out time forthe shoe.

Software 260 includes a receiver 1140 that cooperates with interface 262to receive modeled data 236 from communication device 120. Software 260also includes an analyzer 1142 for analyzing modeled data 236 from aplurality of runners and a generator 1144 for generating and updatingshoe characteristics 258 accordingly. Analyzer 1142 may also analyzemodeled data 236 for many different shoe types to determine a particularshoe type 256 that is suitable for a runner based upon a received runnerprofile 230. For example, runner profile 230 and modeled data 236 may beanalyzed and compared to those of other runners to determine a type ofshoe that best suits the running style and characteristics detected byfoot strike monitor 102.

Server 140 collects modeled data 236 from many runners using manydifferent shoe types 256 over time and analyzer 1142 uses this data toimprove model 234 and wear prediction and accuracy of shoecharacteristics 246. That is, algorithms within analyzer 1142 andsoftware 136 are learning based and becomes more accurate as more sensordata 210 is collected.

Further, shoe characteristics 246 and modeled data 236 may be providedto other entities (e.g., consumer reports and/or wear testers) as a wayof rating of shoes in for impact reduction. This large volume of datamay provide a more scientific review of a running shoe brand and modelthat may be used as a standard for the running shoe market.

System 100 may also be used to provide recommendation to a customer in ashoe store. For example, where a customer enters a store (e.g., arunning specialty store) looking to buy new running shoes, a salesmanmay recommend that the customer have a gait analysis in order toidentify the right type of support required from the new running shoe.Accordingly, one foot strike monitor 102 is attached to each of the newrunning shoes, and the customer runs (e.g., on a treadmill, on a leveltrack, or on a level concrete strip) while a communication device 120 ofthe salesman receives and models sensor data 210 from both foot strikemonitors 102. For example, the customer may run for between one and fiveminutes. Once the running is complete, the salesman selects screen 900to show left shoe pronation graphic 902, left shoe pronation value 906,right shoe pronation graphic 904, and a right shoe pronation value 908,impact force values 910, 912 for each shoe, and show support typedisplay 918 that indicates a recommendation for a particular shoesupport. The salesman may utilize slider 914 to display pronation andimpact force information for any part of the customer's run. Optionally,modeled data 236 corresponding to the customer's run may be sent toserver 140 for further analysis and comparison by analyzer 1142.

FIG. 12 shows one example temporary attachment device 1200 for attachingfoot strike monitor 102 to shoe 104. FIG. 13 shows temporary attachmentdevice 1200 of FIG. 12 attached to shoe 104. FIGS. 12 and 13 are bestviewed together with the following description.

Temporary attachment device 1200 is a horseshoe shaped clip that has twoarms 1202 and 1204 that provide an inward clamping force, indicated byarrows 1203 and 1205, inward around the heel of shoe 104 when positionedthereon. The clamping force is created by properties of the materialsused for arms 1202, 1204, such as spring form steel and/or polycarbonateplastic. Inner surfaces 1210 of arms 1202, 1204 may be textured (e.g.,protrusions) or have a gripping material (e.g., a tacky rubber orsilicon material) that helps retains temporary attachment device 1200 tothe heel of shoe 104. Temporary attachment device 1200 also has two tabs1206, 1208, that protrude down at either side of the foot strike monitor102 (when attached) to contact or protrude into foam of the sole of shoe104 to minimize bounce of foot strike analyzer 102 and to improveaccuracy and reliability of sensors 208 (e.g., the accelerometers and/orgyroscopes) to forces felt by a runner using the shoe. Temporaryattachment device 1200 is configured (e.g., sized and shaped) to followthe contour of shoe 104 where the mesh upper and the foam cushioningmeet, thereby taking advantage of the small lip on the foam/meshinterface for support. Foot strike monitor 102 attaches to temporaryattachment device 1200 using attachment clips 1212 for example, o bepositioned as high as possible and not hang down too low on the foam ofthe shoe. When coupled with temporary attachment device 1200 andpositioned on shoe 104, the foot strike monitor is also positioned to beperpendicular to the ground to provide the best data. Foot strikemonitor 102 may be retained within temporary attachment device 1200 bytabs positioned on three sides of the sensor and is built to remainattached to the clip.

FIG. 14 shows one example permanent attachment device 1400 for attachingfoot strike monitor 102 to shoe 104. Permanent attachment device 1400may include a permanent type adhesive that bonds to the rear of shoe 104and has a pocket for releasably receiving foot strike monitor 102.

In one embodiment, permanent attachment device 1400 is a fabric materialwith a pliable mesh material forming a pouch 1402 and that permanentlyattaches to shoe 104 via a fabric adhesive, for example. Permanentattachment device 1400 has a concave shaped back material that matchesthe curvature of the back of shoe 104 and may have an overall curvedovoid-like shape to prevent ingress of dirt and water. Foot strikemonitor 102 sits in pouch 1402, which stretches to allow the sensor tobe inserted and contracts to retain the sensor within the pouch.Permanent attachment device 1400 may include an elastic band 1404 acrossthe top of the pouch to further prevent foot strike monitor 102 frombeing pushed out of the pouch. Foot strike monitor 102 may also betapered at the top and bottom to help retain it within the pouch whenthere is an impact from below or above. Pouch 1402 and the backingmaterial are stitched together and the stitch pattern is tear dropshaped (e.g., tighter at the top that the bottom) to retain the sensorin the same place during impact while the user is walking or running.

Foot strike monitor 102 may also be configured with a curved (concave)back 1406 that conforms to the shape (both the horizontal and verticalcurvature) of the back of shoe 104. The outside contour of foot strikemonitor 102 may be rain drop shaped allowing it to be retained in placewithin pouch 1402 of permanent attachment device 1400. The front/top ofthe foot strike monitor 102 case is tapered on the top and bottom tohelp avoid contact by the user when removing the shoe (e.g., by steppingon the back tab of the shoe). The bottom surface of the foot strikemonitor 102 is contoured to distribute and deflect any impact frombellow such as from stairs and rocks when running. Pouch 1402 is able towithstand high impact due to flexibility of the mesh and the smoothexternal contours of foot strike monitor 102. To remove foot strikemonitor 102 from pouch 1402 of permanent attachment device 1400, footstrike monitor 102 may have a hole 1408 in the top of the case toreceive a shoelace that may be pulled vertically to remove the sensorfrom pouch 1402.

As illustrated in FIGS. 13 and 14, foot strike monitor 102 is preferablyattached to the heel of shoe 104, since this allows more consistentsensor data 210 to be collected for each run. This heel placement alsoallows foot strike monitor 102 to monitor the rotation of the foot(pronation/supination) since it is vertically attached to the center ofthe heel. When positioned on laces of a shoe, clean and accurate datacannot be easily and consistently captured due to variability intightness of the laces and variability in positioning of the sensor.Optimally, foot strike monitor 102 maybe built into the shoe—either inthe foam or into the upper part, and preferably near the heel.

FIG. 15 shows example orientation of X, Y and Z axes used by foot strikemonitor 102 when positioned at the rear of shoe 104. Sensors 208 arethus positioned to measure acceleration and rotation relative to theseX, Y, and Z axes. The X axis is vertically downwards through shoe 104,the Y axis is horizontally across shoes 104, and the Z axis ishorizontally along shoe 104.

FIG. 16 shows model 234 of FIG. 2 including a foot strike detectionalgorithm 1602, a max impact force algorithm 1604, and a pronationexcursion angle algorithm 1606. Foot strike detection algorithm 1602uses sensors data 210 from the Gyroscope Y axis (referred to as GyrY)and data from the Gyroscope Z axis (referred to as GyrZ) to detect thefoot strike.

FIG. 17 is a graph 1700 illustrating example sensor data 210 for GyrYand GyrZ during contact of the foot with the ground, as used by footstrike detection algorithm 1602 of FIG. 16.

The gyroscope (one of sensors 208) oriented about the y-axis (see FIG.15) collects data indicative of foot rotation from when the foot hitsthe ground to when the toe lifts off the ground. This enables model 234to recognize a step accurately by pairing the impact (Ax of graph 2500,FIG. 25) with the rotation (GyrY). For example, model 234 determines thefoot hitting the ground, rotation from positive towards zero degrees asindicated by line 1702, and rotation about the z-axis (pronation and orsupination) that occurs once the foot hits the ground. In the example ofFIG. 17, multiple data points show a consistent rate of rotation thatmay be used in the model 234. The data also indicates an angle that theankle has rotated in or out through numerically integrating the rate ofrotation over the time (period 1706 of about 100ms) the foot is rotatingin or out before there is toe off as indicated by the slope of line1704.

FIG. 18 is a flowchart illustrating one example method 1800 for footstrike detection. Method 1800 is implemented within foot strikedetection algorithm 1602 of FIG. 16 for example.

In step 1802, method 1800 analyzes multiple data sets from multiplesubjects to determine GyrY threshold and GyrZ threshold. In oneembodiment, step 1802 is implemented in part within software 260 ofserver 140, FIG. 2, wherein server 140 collects sensor data 210 frommultiple foot strike monitors 102, processes the sensor data todetermine GyrY threshold and GyrZ threshold, and then communicationdevice 120 retrieves GyrY threshold and GyrZ threshold from server 140.

In step 1804, method 1800 searches for at least two GyrY values that arehigher than the GyrY threshold and are preceded by at least two GyrYvalues that are lower than the GyrY threshold and also followed by atleast two GyrY values lower than the GyrY threshold. FIG. 21A is a graph2100 showing example sensor data 210 for GyrY during contact of the footwith the ground, illustrating two GyrY values 2102 above GyrY threshold2104 that are preceded by two GyrY values 2106 that are lower than GyrYthreshold 2104.

Step 1806 is a decision. If, in step 1806, method 1800 determines thatthe conditions of step 1804 were found, method 1800 continues with step1818; otherwise, method 1800 continues with step 1808.

In step 1808, method 1800 searches for two successive GyrY values, wherethe first is equal or higher than the GyrY Threshold and the second islower than the GyrY Threshold and their absolute value difference ishigher than 200 deg/sec and those two successive GyrY values arepreceded and followed by at least two GyrY values lower than the GyrYthreshold. See for example, points 2108 in FIG. 21A.

Step 1810 is a decision. If, in step 1810, method 1800 determines thatthe conditions of step 1808 were found, method 1800 continues with step1818; otherwise, method 1800 continues with step 1812.

In step 1812, method 1800 searches, in the vicinity of where theconditions in step 1804 or step 1808 occur, for negative GyrZ valueswith absolute values higher than the absolute value of the GyrZthreshold. FIG. 21B is a graph 2110 showing example sensor data 210 forGyrZ during contact of the foot with the ground, illustrating negativeGyrZ values 2112 that have absolute values greater than the absolutevalue of GyrZ threshold 2114.

Step 1814 is a decision. If, in step 1814, method 1800 determines thatthe conditions of step 1812 were found, method 1800 continues with step1818; otherwise method 1800 continues with step 1816. In step 1816,method 1800 determines that no foot strike is detected. Method 1800 thenterminates. In step 1818, method 1800 determines that a foot strike isdetected. Method 1800 then terminates. Method 1800 is invoked to detectsfoot strikes in subsequent sensor data 210.

FIG. 19 is a flowchart illustrating one example method 1900 for maximpact force detection. Method 1900 is implemented within max impactforce algorithm 1604 of FIG. 16 for example, and may be invoked when afoot strike is determined in step 1818 of method 1800, FIG. 18.

In step 1902, method 1900 finds the maximum Y axis gyroscope value(MaxGy) and its position (posMaxGy) in the vicinity of the detected footstrike (heel, mid, fore). FIG. 21C is a graph 2120 showing examplesensor data 210 for GyrY and AccX during contact of the foot with theground, illustrating MaxGy 2122.

In step 1904, method 1900 finds the maximum X axis accelerometer value(MaxAccX) and its position (posMaxAccX) in the vicinity of the detectedfoot strike or posMaxGy of step 1902. FIG. 21C also shows MaxAccX 2124(negative value) occurring at a similar time to MaxGy 2122. It should benoted that there is always a max value for the gyroscope measuring inthe Y axis right before there is a max value for the acceleration in theX axis. Algorithms included herein look for the MaxGy and record theposition (e.g., in time) it occurred and then find the MaxAccX which isthe vertical impact force felt by the runner.

Method 1900 then terminates.

FIG. 20 is a flowchart illustrating one example method 2000 forpronation excursion angle detection. Method 2000 is implemented withinpronation excursion angle algorithm 1606 of FIG. 16 for example and maybe invoked by step 1818 of method 1800 when a foot strike is determined.

In step 2002, method 2000 find the maximum Z axis gyroscope value(MaxGz) and its position (posMaxGz) in the vicinity of the detected footstrike or posMaxGy of step 1902 of method 1900, FIG. 19. FIG. 21D is agraph 2130 showing example sensor data 210 for GyrY and GyrZ duringcontact of the foot with the ground, illustrating MaxGz 2132 and MaxGy2134.

In step 1904, method 1900 determines pronation excursion angle betweenthe foot strike (MaxAccX and posMaxAccX) and the point of maximumpronation which corresponds to the Z axis gyroscope sample with maximumvalue (MaxGz and posMaxGz). FIG. 21E is a graph 2140 showing examplesensor data 210 for GyrY and GyrZ during contact of the foot with theground, illustrating MaxAccX 2142 and MaxGz 2144.

In step 2006, method 2000 calculates the pronation excursion angle bymultiplying the sample values between the foot strike (posMaxAccX) andthe point of maximum pronation (posMaxGz) with the sampling period. FIG.21E shows example sampling period 2146 between MaxGz 2144 and a point2148 at which the toe leaves the ground. Since MaxGz is in units ofdegrees per second, in order to find the angle through which the foottraveled during the step, the algorithms herein uses the sampling period2146, as seen in FIG. 21E, as bounds for the integration. The pronationexcursion angle is found by integrating the values of the MaxGz over thesampling period. The numerical integration method used is Simpson's 1/3method. Pronation angle is calculated for each step and then averagedover the whole run or session to be displayed to the user oncommunication device 120 for example.

Method 2000 then terminates.

FIGS. 22A, 22B, 23, and 24 show example sensor data 210 captured by footstrike monitor 102, illustrating how the algorithm used herein detectjust the peak values and makes all other data zero, thereby making thepeaks easier to identify.

FIG. 22A is a graph 2200 showing example impact forces detected by footstrike monitor 102. In the example of FIG. 22A, the user is walking andvalues for impact are lower, as one would expect. Algorithms used hereinmay average peak values over an entire session (e.g., a walk) andpublished that average on communication device 120 for example.

FIG. 22B is a graph 2250 showing example pronation detected by footstrike monitor 102 for walking. The algorithms calculate the pronationby taking the MaxGz values and integrate over the sampling period to geta degree value for pronation. The pronation values are also low due tothe fact that the person is walking, as compared to values expected forrunning.

FIG. 23 is a graph 2300 showing example impact forces detected by footstrike monitor 102 for the user when running. The algorithm detects thepeak values for running which vary more than the walking data and arehigher in magnitude.

FIG. 24 is a graph 2400 showing example pronation detected by footstrike monitor 102 for the user when running. The algorithm calculatesthe pronation as described above and, since the user is running, thevalues have increased due to the higher impact.

FIG. 25 shows an example impact graph 2500 illustrating time to reachpeak impact in one step. Graph 2500 is a plot of peak impact on thevertical axis (Ax) for one step. The data is zeroed out before the peakin order to ensure the only the footstep is tracked and averaged and notthe foot moving through the air. Period 2504 indicates that the peakimpact at point 2506 occurs within 30 ms of the foot striking theground. The foot reaches max acceleration quickly, as indicated by line2502, and then the foot stops accelerating during the ground contactwhere the foot begins to rotate in (pronation) or out (supination). Thefinal stage of the acceleration is when there is a dip in theacceleration and then a steep increase in which the foot is nowaccelerating during push-off of the foot from the ground. Line 2502 isthe loading rate of the foot, indicative of how quickly the force goesinto the body, and is factored into model 234. Ground contact time isaround 200 ms as indicated by period 2508.

Once the data is put into the proper columns it is then analyzed for thekey running metrics. The 16 bit 2 compliment data must be firstconverted to G's and degrees per second before it can be analyzed. Thekey metrics are steps, ground contact time, cadence, braking force, peakimpact, rate of pronation, degree of pronation, acceleration in the xyzaxis, and rate of rotation in the yz axis. The driver calls theContactFunc which gives steps, ground contact time and cadence. TheForceFunc gives the average impact force and braking force andPronationFunc gives you the maximum angular rate and degree of rotation.The peak impact felt during a foot strike occurs in the first 30 ms andthe pronation occurs in the first 130 ms and the total ground contacttime is around 200 ms.

The Modelled Wear Factor

FIG. 26 is a schematic illustrating key factors 2600 that influence boneloading and bone strain when running. These factors are incorporatedinto model 234 of FIG. 2 and used to determine shoe wear and predict athe lifetime of the shoe for the particular user. In one embodiment,each shoe is initially given an estimated lifetime of 400 miles. Thislifetime is then adjusted by model 234 according to the following riskfactors, shoe characteristics, and measured parameters of the user.

User information from runner profile 230, sensor data 210 collected fromthe user, and shoe characteristics 258 are evaluated and applied bymodel 234 to adjust the expected lifetime of the shoe as follows:

Injury History of the User

0-5 injuries: Increase threshold 2%

5-10 injuries: No deduction 0%

10-15 injuries: Small Deduction −16%

>15 injuries: medium deduction −2%

Age of the User

Over 60 Large Deduction −3%

50-60 Medium Deduction −2%

40-50 Small Deduction −1%

30-40 No Deduction 0%

20-30 Small increase 1%

Activity Level of the User

High Activity: Increase Threshold 2%

Medium Activity: No deduction 0%

Low Activity: Medium deduction −2%

No Activity: Large deduction −3%

Years of Running

0 Years: Large deduction −3%

1 Years: medium −2%

2 Years: small −1%

3 Years: none 0%

Weight/Height of the User

Height to weight ratio of health person at that age, height, gender

Foot Strike Type Made by the User

Heel strike: Small deduction −1%

Midfoot strike: Small increase 1%

Terrain Selected by the User

Dirt: Medium increase 2%

Mix: Small increase 1%

Asphalt/concrete: medium deduction −2%

Treadmill: Medium deduction −2%

Gender of the User

Men: No deduction 0%

Women: small deduction −1%

Shoe Characteristics

Shoe characteristics 246 are applied to model 234, as follows:

Thick sole: Increase 1%

Minimal shoes: Medium deduction −2%

Traditional shoe: None 0%

Alerts Based Upon Captured Data

Muscle imbalance may be detected by comparing data from foot strikemonitors 102 for each shoe 104.

Discrepancy left and right (more that 10% difference between sides

Ground contact time (Increase in ground contact time means fatigue)

Pronation (Green if less than 10 degree, 11-20 Yellow, >20 Red)

Cadence (Decrease in cadence means fatigue)

Nutrition

Balanced diet (Increase 1%)

Sleep (Increase 1%)

Smoking alcohol (Decrease 3%)

Sensor data

Sensor data 210 is collected and stored within communication device 120and may be processed to further adjust model 234. This data may also besent to server 140 and used to determine adjustment for different typesof user. For example, when a user has five consecutive runs (or apredefined number of steps) over a particular threshold (e.g., loadingrate, peak impact, pronation rate, and/or pronation degree), an alarm istripped and the user is alerted to the detected higher risk of injuryand may be advised to replace shoes or change stride. This is inaddition to model 234 and helps to ensure that there is no over-useinjuries due wearing the wrong shoes. This alert indicates biomechanicalissues that may be alleviated by correcting the shoe stability,strengthening exercises, stretching, foam rolling, and or gaitretraining. These alerts occur when the sensor is reading values thatare too high due to issues outside of the shoe, and may occur before theshoe is worn out. This alerts inform the user more about their runningand any biomechanics/imbalances.

Loading Rate (Change in slope over time, dangerous when too steep) 50%increase in slope

Peak impact (Magnitude over a period of time) <10 G good, 10-14 GMedium, >14 G Bad

Rate of pronation (how fast the foot rotates before coming to a stop)(>300 degrees per second dangerous) (250 degree per second ok) (200degrees per second good)

Pronation (Degree of rotation increases) 0-10 Ok, 11-20 Medium, >20 Bad

Supination (Degree of rotation increases) 0-(−10) Ok, −11-(−20)Medium, >(−20) Bad

Shoe Profile

One or more of the following characteristics of shoe 104 may be used tolook-up and adjust model 234: Brand, Model, Men/Women, Size: US, Weight:Ounces, Road/trail shoe: Outsole, Heel Height: mm, Forefoot height: mm,Heel-toe Drop: mm, Width: Narrow, Regular, Wide, Extra wide, Material:Gel, plastic, boost, EVA foam, TPU foam (Boost), Stability material:Neutral, stability, motion control,

Minimalist, Heel Counter: Plastic heel counter on upper of shoe,Flexibility: How easily it is to bend a shoe. Nike Free has highflexibility, Brooks Beast has low flexibility, Arch support: High,medium, low arch height in shoe, and Footstrike: Heel, Midfoot,Forefoot.

Community

In one embodiment, server 140 may implement a communicate database wherea user may input how they feel about the shoe wear and when theyactually replace their shoes compared to when the model recommended toreplace their shoes. This community database may allow users to readreviews on and provide reviews for shoes based upon characteristics andmeasurements determined by foot strike monitor 102.

In one embodiment, software 136 running on communication device 130 mayautomatically recognize and log exercise sessions performed by the user.For example, based upon sensor data 210, software 136 may utilize model234 to determine when the user is running, walking, and stationary, andmay determine a map of activity throughout the day as an accurateactivity log.

Other Uses

Foot strike analyzer 102 and/or software 136 may have other uses. Forexample, foot strike analyzer 102 and/or software 136 may be used tocheck that safety footwear is functioning properly. For example, footstrike monitor 102 may be configured with firemen's boots and used toensure that the boots have the correct stiffness and/or non-slip grip.For example, as a type of shoe, the fireman's boot may have definedthresholds for performance that may be evaluated by software 136.

Foot strike analyzer 102 may be configured with other sensors (e.g.,magnetometers) that may detect magnetic strips positioned around abuilding, where each magnetic strip may be encoded such that foot strikemonitor 102 may determine is location when detecting the strip.

Changes may be made in the above methods and systems without departingfrom the scope hereof. It should thus be noted that the matter containedin the above description or shown in the accompanying drawings should beinterpreted as illustrative and not in a limiting sense. The followingclaims are intended to cover all generic and specific features describedherein, as well as all statements of the scope of the present method andsystem, which, as a matter of language, might be said to falltherebetween.

What is claimed is:
 1. A system for analyzing foot strikes, comprising:a foot strike monitor, configurable with a running shoe, for detectingmovement of a runner's foot within the running shoe; an app, fordownloading to, and executing on, a communication device, for: receivingthe detected movement from the foot strike analyzer; modeling wear onthe shoe based upon characteristics of the runner and characteristics ofthe shoe to determine a performance of the shoe; predicting a date whenthe performance of the shoe will fall below a defined threshold; andalerting the runner to the predicted date.
 2. The system of claim 1,further comprising an adhesive pouch configured to permanently attach toa rear of the running shoe and to removably secure the foot strikemonitor to the running shoe.
 3. The system of claim 2, the adhesivepouch having an ovoid shape to resist penetration of dirt and moisture.4. The system of claim 2, the foot strike sensor having a hole at thetop to receive a shoelace to aid removal from the adhesive pouch.
 5. Thesystem of claim 1, further comprising a removable clip having ahorse-shoe shape for gripping a rear of the running shoe and configuredto removably secure the foot strike monitor to the running shoe.
 6. Thesystem of claim 5, the removable clip having two downward protrusionsfor contacting a foam sole of the running shoe to prevent the footstrike monitor bouncing up and down.
 7. The system of claim 1, the appfurther configured to process the detected movement to detect and recorda traumatic event based upon acceleration and rotation of the foot.
 8. Amethod for analyzing foot strikes, comprising: receiving a runnerprofile defining characteristics of a user and a shoe type of the shoes;retrieving shoe characteristics based upon the shoe type; configuring amodel of shoe wear based upon both the runner profile and the shoecharacteristics; receiving sensor data indicative of movement of arunner's foot from a foot strike monitor configured with the shoes;processing the sensor data through the model to determine a user'sexpected lifetime for the shoes; and indicating the user's expectedlifetime to the user.
 9. The method of claim 8, the shoe characteristicsdefining a manufacturer's expected lifetime of the shoes, wherein themodel adjusts the manufacturer's expected lifetime to determine theuser's expected lifetime based upon the runner profile, the sensor data,and the shoe characteristics.
 10. The method of claim 9, the runnerprofile defining health of the user, activity of the user, and terraininformation.
 11. The method of claim 9, the user's expected lifetime ofthe shoes being further adjusted based upon subsequently received sensordata indicative of a running style of the user.
 12. The method of claim9, the user's expected lifetime of the shoes being further adjustedbased upon subsequently received sensor data indicative of protectionprovided by the shoes.
 13. The method of claim 8, further comprising:detecting, within the sensor data, reductions in cushioning and supportprovided by the shoes; and alerting the user to danger resulting fromthe reductions in cushioning and support.
 14. The method of claim 13,the step of detecting comprising detecting reductions in cushioning andsupport for a predefined number of occurrences.
 15. The method of claim13, the step of detecting comprising detecting one or both of increasedpeak strike force and increased pronation.
 16. The method of claim 8,the step of processing comprising detecting, within the sensor data, afoot strike by correlating rotation of the shoe about both Y and Z axesand an impact force in an X axis.
 17. The method of claim 8, the step ofprocessing further comprising processing the sensor data through themodel to recommend a new shoe for the user, and further comprisingreceiving further sensor data capture during use of the new shoe overfour subsequent sessions to ensure that it is the right shoe for theuser.
 18. A method for analyzing foot strikes, comprising the steps of:receiving a runner profile defining a shoe type; retrieving shoecharacteristics based upon the shoe type; configuring a model of shoewear based upon both the runner profile and the shoe characteristics;receiving sensor data indicative of movement of a runner's foot from afoot strike monitor configured with a shoe; processing the sensor datathrough the model during a first period to generate model dataindicative of an initial performance of the shoe; processing the sensordata through the model during a subsequent second period to generatemodel data indicative of a current performance of the shoe; analyzingthe current performance and the initial performance to determine changein performance of the shoe; predicting a date when performance of theshoe will fall below a defined threshold; and alerting the runner to thepredicted date.
 19. A software product comprising instructions, storedon non-transitory computer-readable media, wherein the instructions,when executed by a digital processor, perform steps for analyzing footstrikes, comprising: instructions for configuring a model of shoe wearbased upon both a runner profile and shoe characteristics; instructionsfor sensing, using at least one accelerometer configured with a shoe,sensor data indicative of movement of a runner's foot; instructions forprocessing the sensor data through the model during a first period togenerate model data indicative of an initial performance of the shoe;instructions for processing the sensor data through the model during asubsequent second period to generate model data indicative of a currentperformance of the shoe; instructions for analyzing the currentperformance and the initial performance to determine change inperformance of the shoe; instructions for predicting a date whenperformance of the shoe will fall below a defined threshold; andinstructions for alerting the runner to the predicted date.